#include <iostream>
#include <algorithm>
#include <string>
#include <vector>

using namespace std;

struct goods
{
    string name;
    double price;
    int evaluate;
};

void printArray(vector<goods> a)
{
    for(auto [x, y, z] : a)
    {
        cout << x << " "<< y << " " << z << endl;
    }
}

int main()
{
    auto f1 = [](int x)->int {
        cout << x << endl;
        return 0;
    };
    cout << typeid(f1).name() << endl; // lambda表达式实质是匿名函数对象
    f1(1);

    // vector<goods> good = {{"苹果", 2.3, 6}, {"梨子", 1.3, 4}, {"西瓜", 1.6, 7}};
    // sort(good.begin(), good.end(), [](const goods& left, const goods& right){
    //     return left.name < right.name;
    // });
    // printArray(good);
    
    // cout << endl;
    
    // sort(good.begin(), good.end(), [](const goods& left, const goods& right){
    //     return left.price < right.price;
    // });
    // printArray(good);

    // cout << endl;
    
    // sort(good.begin(), good.end(), [](const goods& left, const goods& right){
    //     return left.evaluate < right.evaluate;
    // });
    // printArray(good);

    return 0;
}